home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 27 / CU Amiga Magazine's Super CD-ROM 27 (1998)(EMAP Images)(GB)[!][issue 1998-10].iso / CUCD / PowerPC / vbcc / machines / amigawos / libsrc / stdio / setvbuf.c < prev    next >
C/C++ Source or Header  |  1998-08-02  |  551b  |  21 lines

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int setvbuf(FILE *f,char *buf,int mode,size_t size)
  5. {
  6.     if(size<2||f->flags&(_READ|_WRITE)) return(EOF);
  7.     if(mode==_IONBF) {f->flags|=_UNBUF;size=1;} else f->flags&=~_UNBUF;
  8.     if(mode==_IOLBF) f->flags|=_LINEBUF; else f->flags&=~_LINEBUF;
  9.     if(buf){
  10.         size--;                 /*  eins wird fuer unget gebraucht  */
  11.         f->base=buf+1;
  12.         f->flags|=_NOTMYBUF;
  13.     }else{
  14.         if(!(f->base=(char *)malloc(size+1)+1))
  15.             return(EOF);
  16.     }
  17.     f->bufsize=size;
  18.     return(0);
  19. }
  20.  
  21.